#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtCore>
#include <QtWidgets>
#include "data.h"
#include "placement.h"
#include "routing.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void on_actionZoom_in_triggered();

    void on_actionZoom_out_triggered();

    void on_actionOpen_Netlist_triggered();

    void on_listWidget_itemClicked(QListWidgetItem *item);

    void on_actionPositioning_triggered();

    void on_actionDraw_Cell_triggered();

    void on_listWidget_2_itemClicked(QListWidgetItem *item);

    void on_doubleSpinBox_valueChanged(double arg1);

    void on_doubleSpinBox_2_valueChanged(double arg1);

    void on_doubleSpinBox_3_valueChanged(double arg1);

    void on_doubleSpinBox_4_valueChanged(double arg1);

    void on_actionExit_triggered();

    void on_actionFit_in_View_triggered();

    void on_actionShow_Only_Cell_triggered(bool checked);

    void on_actionRouting_triggered();

    void on_actionShow_Net_Labels_triggered();

    void on_actionShow_Pins_triggered();

    void on_actionCIF_File_triggered();

    void on_actionReduce_Polygons_triggered();

    void on_actionOpen_Rules_File_triggered();

private:
    QGraphicsScene *scene;
    Data *data;
    qreal *scale;
    bool showLabels;
    bool visible;
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
